perm filename FASTIO.FAI[1,LCS] blob sn#305758 filedate 1977-09-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	 ******** THIS IS IRCAM VERSION ******
C00010 00003	UNPAC:	0		CALL UNPAC(PW,AR)
C00013 ENDMK
C⊗;
; ******** THIS IS IRCAM VERSION ******
	TITLE FASTIO ; ********* NOV 4,70 *********
	INTERNAL UNPAC,GETFIL,FASTIN

;;	MAXBLK←←=4998		;=4999 IS USED BY SYSTEM FOR PASSWORD

;;	CH←12
;;	CH2←11
	CH3←13
;;	BLKS←←=1

DEFINE ERROR (MSG)
<	JSA 16,.ERROR
	JUMP [ASCIZ/MSG/
]
>

;;REGS:	BLOCK 20


;CALL GETFIL(<FILE>,WDCNT)  ******** RETURNS THE WD CNT.

;GETFIL:	0
GETFIL:	MOVE 0,@0(16)
	MOVEM 0,FILNAM#
 	JSA 16,INTFIZ
	MOVE 0,[SIXBIT/MSB/]
;	MOVEM 0,DIR+1
	MOVEM 0,DIR+3

	JSA 16,LKUP
;	EXIT 
;	SETZM DIR+1
;	JSA 16,LKUP
GETF3:	MOVE 0,DIR+5	;GET THE WD CNT. (INCLUDES HEADER)
	MOVEM 0,@1(16)	;DON'T FORGET IT'S FIXED POINT
	POPJ 17,
;	0
;GETF3:	JRA 16,1(16)


INTFIZ:	0	;INITS DSK FOR INPUT
;;	MOVEI REGS
;;	BLT REGS+3
	INIT CH3,17
	SIXBIT/DSKM/
	0
	ERROR <CAN'T INIT DSK!>
;	JRST INTF4
;INTFIL:	0	;INITS DSK 
;	MOVEI REGS
;	BLT REGS+3
;	INIT CH2,17
;	SIXBIT/DSKM/
;	0
;	ERROR <CAN'T INIT DSK!>
INTF4:	MOVE 0,FILNAM#
	MOVEM 0,FN#
	MOVE 1,[POINT 7,FN]
INTF3:	MOVE 2,[POINT 6,DIR+2]
	SETZM DIR+2
;INTF3:	MOVE 2,[POINT 6,DIR]
;	SETZM DIR
	MOVEI 3,5
INTF1:	ILDB 0,1
	CAIN 0," "
;;	JRST INTF2
	JRA 16,0(16)
	SUBI 0,40
	IDPB 0,2
	SOJG 3,INTF1
;;INTF2:	HRLZI REGS
;;	BLT 3
;;	JRA 16,0(16)


LKUP:	0
	SETZM DIR+4
	SETZM DIR+1
;	SETZM DIR+2
;	SETZM DIR+3
	LOOKUP CH3,DIR
	EXIT
	JRA 16,0(16)
DIR:	5
	BLOCK 5


;CALL FASTIN(<ARRAY>,<NO. WORDS>)

;FASTIN:	0
FASTIN:	HRRZ 0,0(16)
	SUBI 0,1
	MOVEM 0,COM
	MOVN 0,@1(16)
	HRLM 0,COM
	INPUT CH3,COM
;	STATZ CH3,020000
;	JRST EOF
	STATZ CH3,740000
	JRST 4,.		;SAME AS HALT.
	POPJ 17,   		;	JRA 16,2(16)
;EOF:	SETOM EOFFLG 		;EOF FLAG
;	POPJ 17,


COM:	OCT 0,0
COM1:	0
BLKNUM:	0

.ERROR:	0
	OUTSTR [ASCIZ/?
/]				;MAKE SURE HE CAN SEE HIS ERROR
	OUTSTR @(16)		;OUTPUT ERROR MESSAGE
	CALLI 1,12		;LET USER CONTINUE
	JRA 16,1(16)
;UNPAC:	0		;CALL UNPAC(PW,AR)
UNPAC:	HRRZ 1,1(16)
	ADDI 1,2
	MOVE 2,@0(16)
	LSHC 2,-14
;;	LSHC 2,-10	;FOR 8-BIT
	ASH 3,-30
;;	ASH 3,-34
;;	FLTR 3,3	;ALL SAMPLES MUST BE IN FLOATING POINT.
	MOVEM 3,@1  ; FIXED POINT IN THIS VERSION
	SOJ 1,
	LSHC 2,-14
;;	LSHC 2,-16	;FOR 14-BIT
	ASH 3,-30
;;	ASH 3,-26
;;	FLTR 3,3	;ALL SAMPLES MUST BE IN FLOATING POINT.
	MOVEM 3,@1
	SOJ 1,
	LSHC 2,-14
;;	LSHC 2,-16
	ASH 3,-30
;;	ASH 3,-26
;;	FLTR 3,3	;ALL SAMPLES MUST BE IN FLOATING POINT.
	MOVEM 3,@1
;	JRA 16,2(16)
	POPJ 17,
	END